/*
Date:20210428 22:29pm
key:将a2 + b2 = c 拆解成 c-a^2 开根号后是不是一个整数。
    这里a的范围要同时满足 i<(c/2)+1&&i<ceil(sqrt(INT_MAX))。不可能过半 及 在题目极限范围内 
    陷阱应该在于双循环
*/
class Solution {
public:
    bool judgeSquareSum(int c) 
    {
        int r=ceil(sqrt(INT_MAX));
        //a+b + a-b 
        for(int i=0;i<(c/2)+1&&i<r;i++)
        {
            double b2=sqrt(c-i*i);
            //cout<<b2;
            if(b2-ceil(b2)==0){return 1;}
        }
        return 0;
    }
};